今天的文章將要帶大家認識一下密碼學中的另一大類 "現代密碼"
與前篇介紹的古典密碼不同
現代密碼仰賴著大量數學理論與電腦龐大的運算能力
利用這兩項特點
其衍生出的密碼幾乎都是人工難以負荷
在這之中有個很重要的概念與古典密碼不同
那就是 哈希 (Hash)
古典密碼幾乎都是加密、解密或是編碼
只要知道原理與過程就可以逆推明文
但在哈希中不一樣
其為一種不可逆的函數
透過函數將明文轉為密文
但是我們從密文卻無法得知原始明文或是推回明文
因此想要得知該段 Hash 的明文為何
通常需要透過碰撞的方式 (也就是暴力破解) 才有辦法獲得
同一種哈希的結果
不論明文為何
都是一樣的長度與格式
且很重複機率極小
也因此常被用作資料驗證
以下介紹幾種常見的哈希
是一種廣泛被使用的雜湊函數
用來將資料做摘要以供驗證之類使用
最普遍長度為 128 bits (16 bytes)
通常會使用 32 個十六進位
由美國國家安全局 (NSA) 所設計
有一系列的相關演算法
SHA-0、SHA-1 因為已經出現安全性上的問題
目前已經不建議使用
推薦使用 SHA-2 與 SHA-3
SHA-2 中有常見的 SHA-256 與 SHA-512
目前未有針對該演算法的有效攻擊
其中 256 與 512 為演算法輸出後的 bit 數量
接著明天我們來談談"對稱式加密"與"非對稱式加密"